#ifndef _DICOM_ECRYPT_BYTE_ARRAY_H_
#define _DICOM_ECRYPT_BYTE_ARRAY_H_

#include <stdint.h>
#include <vector>
#include <string>

namespace dicom {

class ByteArray : public std::vector<uint8_t> {
  typedef std::vector<uint8_t> base;

 public:
  ByteArray() : base() {}
  explicit ByteArray(size_t n) : base(n) {}
  ~ByteArray() {}

  std::string toBase64Str() const;
  std::string toUrlBase64Str() const;
  std::string toRawStr() const;
  std::string toHexStr() const;
  std::string toDecimalStr() const;

  static ByteArray fromRawStr(const std::string &str);
  static ByteArray fromHexStr(const std::string &str);
  static ByteArray genRandom(size_t size);
};
};

#endif  // _DICOM_ECRYPT_BYTE_ARRAY_H_
